package com.app.security.satoken.permisson;

import cn.dev33.satoken.stp.StpInterface;
import com.app.core.security.ResourceOwnerService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import java.io.Serializable;
import java.util.List;

/**
 * @author qiangt
 * @version 1.0
 * @date 2023/10/16 14:20
 * @description: 获取当前登录人权限&角色
 */
@RequiredArgsConstructor
@Component
public class PermissonServiceImpl implements StpInterface {

    private final ResourceOwnerService resourceOwnerService;

    /**
     * 返回一个账号所拥有的权限码集合，每调一次权限校验就执行一次该方法
     * @param loginId
     * @param loginType
     * @return 权限集合
     */
    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        return resourceOwnerService.getPermissionList((Serializable) loginId);
    }

    /**
     * 返回一个账号所拥有的角色码集合，每调一次角色校验就执行一次该方法
     * @param loginId
     * @param loginType
     * @return 角色集合
     */
    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        return resourceOwnerService.getRoleList((Serializable) loginId);
    }
}
